Elastic IP関連付け解除後に、パブリックIP自動割り当てがされなくなる場合がある

Elastic IP関連付け解除後に、パブリックIP自動割り当てがされなくなる場合がある

Clock Icon2022.05.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

EC2のパブリック IPv4 アドレスにはElastic IPで関連付けしたものと、パブリックIP自動割り当て機能によってパブリックIPアドレスプールから自動で割り当てられたものが存在します。
一般的に静的にIPアドレスを保持したい場合にElastic IPを使うケースが多いと思いますが、その後Elastic IPの利用をやめて自動割り当てに戻したいケースがありました。

通常はElastic IPアドレスを開放するとまたEC2作成時に有効化している場合は自動割り当てされるのですが、自動でされないケースがあることを知ったので共有しますね。

EC2のパブリックIPv4 アドレス

EC2インスタンスのパブリックIPv4アドレスのおさらいをします。
前述のとおり自動割り当てされるが停止・起動時にIPアドレスが変わるものと、静的にIPアドレスを保つことが出来るElastic IPアドレスがあります。

パブリックIPの自動割り当て

自動割り当て機能を使うと Elastic IPアドレスを用意せずにインスタンスへパブリックIPv4アドレスが自動で割り当てされます。

自動割り当てされるパブリックIPアドレスは静的ではありません。
EC2インスタンスが停止されたタイミングで開放されてパブリックIPアドレスプールに戻り、EC2インスタンスが開始されると再度新しいIPアドレスが割当されます。動的な感じです。

ちなみに、再起動では開放と再割り当てはされません。

Elastic IPの割り当て

前述のとおり静的にしたかったのでElastic IPを割り当てするケースは多いと思います。私も割り当てをしていました。
ちなみに、Elastic IPを割り当てると、自動割り当てされていたパブリックIPアドレスはパブリックIPアドレスプールに戻るので利用できなくなります。

パブリックIP自動割り当てを有効化した状態でElastic IPの関連付けを解除

もともとパブリックIPアドレスの自動割り当てが有効化されたEC2インスタンスに対して、Elastic IPアドレスを関連付けすると自動割り当てされたIPアドレスは開放されることがわかりました。

その後、静的にする必要がなくなったので、Elastic IPアドレスの関連付けを解除することにしました。
Elastic IPアドレスの関連付けを解除するとパブリックIPアドレスはどうなるでしょうか。

自動でパブリックIPアドレスが割り当てされる

Elastic IPの関連付けを解除する場合、対象EC2インスタンスのパブリックIP自動割り当て設定が有効であれば、Elastic IP開放時に自動でパブリックIPアドレスが割り当てされます。

自動でパブリックIPアドレスが割り当てされないものもある

しかし、一部インスタンスでは、Elastic IPアドレスの関連付け解除後に、パブリックIPアドレスが自動割り当てされないものがありました。

複数ENIがアタッチされていると自動割り当てされない

パブリックIPアドレスに関して自動割り当てされる時、されない時の条件は以下のドキュメントに記載されています。

VPC 内のインスタンスのパブリック IP アドレスが既に解放されている場合には、複数のネットワークインターフェイスがインスタンスにアタッチされていると、インスタンスに新しいパブリック IP アドレスは送信されません。

知らなかったのですが、複数ENIがアタッチされていると自動割り当てされないようですね。
先程の自動割り当てされないインスタンスは、EC2インスタンス作成 → パブリックIPアドレス自動割り当て → Elastic IPアタッチ → ENI追加 → Elastic IPデタッチ、という流れになっていたので、パブリックIPアドレスが割り当てない状態になっていました。

一時的にプライマリENIのみにしてみる

そこで、複数ENIの状態を回避するために、ENIのデタッチ機能を使って一時的にプライマリENIのみの状態として、パブリックIPアドレスが自動割り当てされるか確認してみました。

まずはENIをデタッチ直後にパブリックIPアドレスが割り当てされるのか確認してみます。

デタッチしても自動割り当てされるわけではないことが確認出来ました。

次に、ドキュメントの自動割り当てのタイミングとして記述されていた、「EC2インスタンスの停止と起動」を行ってみましょう。
ちなみに、複数ENIがアタッチされている状態で停止 → 起動 を行ってみましたが、パブリックIPアドレスの自動割り当てはされませんでした。

プライマリENIのみに変更後は、パブリックIPアドレスが自動割り当てされましたね。
最後に、先程デタッチしたENIを再度アタッチしておきます。

期待した状態に戻すことが出来ました。

さいごに

本日は、Elastic IPアドレスの関連付け解除後に、パブリックIPアドレス自動割り当てがどのようにされるのかを確認してみました。
料金の問題もありあまり関連付け解除するケースがなかったので、複数ENIアタッチ時に再割当てされなくなることはもちろんですが、プライマリENIのみであれば再度自動割り当てされるということも知りませんでした。
ケースとしてそう多くない気はしますが、条件満たしていいればまた自動割り当てされる。という点は覚えておきます。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.